Container Registryサービスは、Dockerコンテナイメージを保存し、配布するためのサービスです。コンテナイメージを扱うにはまずユーザーの環境にDockerがインストールされている必要があります。
Docker HubからDocker Desktop for Windowsをダウンロードし、インストールします。
Docker HubからDocker Desktop for Macをダウンロードし、インストールします。
Linuxディストリビューションによってインストール方法が異なります。CentOS、Ubuntu以外のディストリビューションを使用している場合はInstall Docker Engineを確認してください。
// Dockerインストールに必要なパッケージをインストール
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
// Docker保存場所の追加
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
// Dockerのインストール
$ sudo yum install -y docker-ce docker-ce-cli containerd.io
// Dockerのサービス開始
$ sudo systemctl start docker
// aptインデックスのアップデート
$ sudo apt-get update
// repository over HTTPSを使用するためのパッケージをインストール
$ sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
// GPG Keyを追加して確認
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
// 保存場所を追加し、aptインデックスをアップデート
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
// Dockerのインストール
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
// Dockerのサービス開始
$ sudo systemctl start docker
Dockerコマンドラインツール(CLI)を利用してユーザーレジストリにログインするには、サービスAppkeyまたはプロジェクト統合Appkeyが必要です。サービスAppkeyはContainer > Container RegistryサービスページのURL & Appkeyボタンを押すと確認できます。プロジェクト統合Appkeyはプロジェクト設定ページのAPIセキュリティ設定で作成して使用できます。
[参考] メンバー権限のユーザーは、コンテナイメージの保存、削除機能が使用できません。
ユーザーレジストリアドレスはContainer > Container Registryサービスページのレジストリアドレスボタンを押すと確認できます。
コンテナイメージを保存したり、任意の環境へインポートするにはDocker CLIツールを利用する必要があります。Docker CLIツールを利用してユーザーレジストリへアクセスするにはログインする必要があります。ログインに使用する情報はNHN Cloudユーザーアカウントメールアドレスと、サービスAppkeyまたはContainer Registryサービスが有効になっているプロジェクトの統合Appkeyです。
$ docker login {ユーザーレジストリアドレス}
Username: {NHN Cloudユーザーアカウントメールアドレス}
Password: {Appkey}
Login Succeeded
[参考] docker loginコマンドで取得したトークンの最大有効時間は12時間です。
コンテナイメージをユーザーレジストリに保存するにはユーザーレジストリアドレスを含んだリポジトリ(repository)名とタグ(tag)が必要です。Docker CLIツールのtagコマンドを利用して作成できます。
$ docker tag {リポジトリ名}:{タグ} {ユーザーレジストリアドレス}/{リポジトリ名}:{タグ}
$ docker tag ubuntu:18.04 example-kr1-registry.container.cloud.toast.com/ubuntu:18.04
[参考] コンテナイメージ名([リポジトリ名]:[タグ名])には英字小文字、数字、一部特殊文字(-, _, /, .)のみ使用できます。リポジトリ名はレジストリアドレスを含めて最大255文字、タグ名は最大129文字に制限されます。イメージ名が長いと不便な場合があります。適当な長さの名前を設定してください。
Docker CLIツールのpushコマンドを使用してコンテナイメージをユーザーレジストリに保存できます。
$ docker push {ユーザーレジストリアドレス}/{リポジトリ名}:{タグ名}
$ docker push example-kr1-registry.container.cloud.toast.com/ubuntu:18.04
The push refers to repository [example-kr1-registry.container.cloud.toast.com/ubuntu]
16542a8fc3be: Pushed
6597da2e2e52: Pushed
977183d4e999: Pushed
c8be1b8f4d60: Pushed
18.04: digest: sha256:e5dd9dbb37df5b731a6688fa49f4003359f6f126958c9c928f937bec69836320 size: 1152
保存されたコンテナイメージはWebコンソールで照会できます。
リポジトリリスト Container > Container Registryサービスページを開くと、コンテナイメージリポジトリリストを確認できます。
タグリスト リポジトリリストから任意のリポジトリをクリックすると、選択したリポジトリに保存されたタグリストを照会できます。任意のタグを選択すると、タグの詳細情報を確認できます。提供されるタグアドレスを利用して任意の環境に配布できます。
Docker CLIツールのpullコマンドを使用してイメージを取得できます。Webコンソールで取得するイメージのタグアドレスを確認する必要があります。
$ docker pull {タグアドレス}
$ docker pull example-kr1-registry.container.cloud.toast.com/ubuntu:18.04
18.04: Pulling from ubuntu
5bed26d33875: Pull complete
f11b29a9c730: Pull complete
930bda195c84: Pull complete
78bf9a5ad49e: Pull complete
Digest: sha256:e5dd9dbb37df5b731a6688fa49f4003359f6f126958c9c928f937bec69836320
Status: Downloaded newer image for example-kr1-registry.container.cloud.toast.com/ubuntu:18.04
example-kr1-registry.container.cloud.toast.com/ubuntu:18.04
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
example-kr1-registry.container.cloud.toast.com/ubuntu 18.04 4e5021d210f6 12 days ago 64.2MB
タグリストから削除するタグを選択し、タグ削除ボタンを押して削除します。